package main

import (
	"fmt"
	"reflect"
)
// 
type myInt int 
type Person struct{
	Name  string
	Age	 int
}

// 反射获取任意变量的类型
func reflectFn(x interface{}){
	// 通过reflect.TypeOf来获取接口里面的类型
	v :=reflect.TypeOf(x)
	v.Name()
	// 类型种类指的是底层的结构体
	v.Kind()
	fmt.Printf("类型:%v 类型名称:%v 类型种类:%v\n",v,v.Name(),v.Kind())
}
func main(){
	// 反射获取任意变量的类型
	a :=10
	b :=23.01
	c :=true
	d :="你好,golang"
	reflectFn(a)
	reflectFn(b)
	reflectFn(c)
	reflectFn(d)

	var e myInt=34
	var f=Person{
		Name: "张三",
		Age: 20,
	}
	reflectFn(e)
	reflectFn(f)
	var h =25
	reflectFn(&h)
	var i =[3]int{1,2,3}
	var j =[]int{11,23,22}
	reflectFn(i)
		reflectFn(j)

}